查看原文
其他

知易行难

2017-03-31 大邓 大邓带你玩python

请输入标题     bcdef

这几天应一位工大师兄要求写关于股票评论的爬虫,进而能对评论文本进行分析,发现投资价值。


这个任务很有现实应用价值,我也很感兴趣,一开始觉得这多简单 啊。

爬虫会写,文本也会分析,那一组装不就完事了嘛。于是很爽快同意了,结果忙活了将近一周,最后在最开始的爬数据这关卡住了。雪球网太敏感了,我发送几十次请求就被封,这可咋整!!!


这网站太难爬了,这也证明自己水平还是没到,对于反扒措施严密的网站,大邓无能为力。还是先精耕细作,提高自己的能力,毕竟学python连一年还没到。

请输入标题     abcdefg

任务说明

请输入标题     bcdef

爬取对象:雪球网

要求:同时对多只股票当天的评论进行抓取


分析难点

1、要同时对多只股票评论界面进行访问,要用到多进程。

2、并发访问(同时一个网站多个网址进行访问),容易被封,需要使用代理IP


请输入标题     abcdefg

雪球网址分析

请输入标题     bcdef

打开一只股票(如“格力电器”)的网址,

https://xueqiu.com/S/SZ000651

打开评论界面

我们知道,像金融领域网站一般都是很有价值的,那么他们的网站肯定是爬虫重点的访问对象。网站肯定不简单,很大的可能性是动态网页。


打开开发者工具,审查翻页时候的请求信息,

(看下图)发现 网页上某评论 与 访问可疑网址时返回的信息对应起来,说明可疑网址就是我们想要找到网址信息。

网址在下图

https://xueqiu.com/statuses/search.json?count=10&comment=0&symbol=SZ000651&hl=0&source=user&sort=time&page=2&_=1490931772156

所以我们只要改变symbol和page就可以对不同股票的不同评论页面进行访问

请输入标题     abcdefg

初始代码

请输入标题     bcdef

对一个股票的访问请求成功了,那么下面我们要构造一个雪球类,里面有访问单个股票的方法,也有多进程访问多只股票的方法。

多进程

使用多进程,实现同时对多只股票的访问,这里用到mutiprocessing库。


python中的多线程貌似没啥用,我这里就用了多进程。其实多进程多线程都是为了提高效率,不必要太较真到底用多线程还是多进程,会用就好,以后再深究哪个效率高。


这里我其实也不太懂,我只是代码的搬运工,从网上找了些代码依次试了试。


我们构造好一个爬数据的函数后(比如我这里第一个函数是GetData),将该函数代入到多进程代码中

上述代码实现同时对多个股票评论页面进行抓取。


运行一下

如何使用代理

请输入标题     bcdef

上面的代码访问多了,还是会被封,所以今天我特意在这个网站上花了9元买了一天的代理

http://www.xdaili.cn/

点击生成api

可以先提取看看访问这个api返回的是什么

我们只需要写一个访问该api的函数,返回20个代理ip。

增加代理,访问该股票依旧能获得评论数据,说明代理正常运行。如下图

但是等自己大规模运行后,你看到的是这样的图,此刻大邓内心是崩溃的。这雪球网忒难对付!!!



更多内容

大数据

大数据时代,你如何成为弄潮儿

爬虫

 用词云图解读“于欢案”

【视频】于欢案之网民的意见(1)?

【视频】有了selenium,小白也可以自豪的说:“去TMD的抓包、cookie”

【视频】快来get新技能--抓包+cookie,爬微博不再是梦

【视频教程】用python批量抓取简书用户信息

  爬豆瓣电影名的小案例(附视频操作)

  爬豆瓣电影名的小案例2(附视频操作)

  python代理爬虫抓豆瓣电影数据(一)

  python代理爬虫抓豆瓣电影数据(二)

  用Python抓取百度地图里的店名,地址和联系方式

  Python大法好:贴吧爬虫大法

文本分析

  python居然有情感??真的吗??

  基于共现发现人物关系的python实现

  用python计算两文档相似度

神奇的python

 怜香惜玉,我用python帮助办公室文秘

 逆天的量化交易分析库-tushare

 开扒皮自己微信的秘密

 8行代码实现微信聊天机器人

 使用Python登录QQ邮箱发送QQ邮件


由于篇幅限制,

想看更多代码可回复“雪球网”,即可获得项目的网盘资源



请输入标题     abcdefg


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存